package com.houweishi.module.oaEntry.mapper;

import com.houweishi.module.oaEntry.domain.OaEntry;
import com.houweishi.module.oaEntry.domain.OaEntryEducationExperience;
import com.houweishi.module.oaEntry.domain.OaEntryWorkExperience;

import java.util.List;

/**
 * 入职申请Mapper接口
 *
 * @author yqq
 * @date 2023-07-19
 */
public interface OaEntryMapper
{
    /**
     * 查询入职申请
     *
     * @param id 入职申请主键
     * @return 入职申请
     */
    public OaEntry selectOaEntryById(Long id);

    /**
     * 查询入职申请列表
     *
     * @param oaEntry 入职申请
     * @return 入职申请集合
     */
    public List<OaEntry> selectOaEntryList(OaEntry oaEntry);

    /**
     * 新增入职申请
     *
     * @param oaEntry 入职申请
     * @return 结果
     */
    public int insertOaEntry(OaEntry oaEntry);

    /**
     * 修改入职申请
     *
     * @param oaEntry 入职申请
     * @return 结果
     */
    public int updateOaEntry(OaEntry oaEntry);

    /**
     * 删除入职申请
     *
     * @param id 入职申请主键
     * @return 结果
     */
    public int deleteOaEntryById(Long id);

    /**
     * 批量删除入职申请
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOaEntryByIds(Long[] ids);

    /**
     * 批量删除工作经验
     *
     * @param entryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOaEntryWorkExperienceByEntryIds(Long[] entryIds);

    /**
     * 批量删除教育经历
     *
     * @param entryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOaEntryEducationExperienceByEntryIds(Long[] entryIds);

    /**
     * 批量新增工作经验
     *
     * @param oaEntryWorkExperienceList 工作经验列表
     * @return 结果
     */
    public int batchOaEntryWorkExperience(List<OaEntryWorkExperience> oaEntryWorkExperienceList);


    /**
     * 通过入职申请主键删除工作经验信息
     *
     * @param entryId 单号
     * @return 结果
     */
    int deleteOaEntryWorkExperienceByEntryId(Long entryId);

    /**
     * 通过入职申请主键删除教育经历
     *
     * @param entryId 单号
     * @return 结果
     */
    int deleteOaEntryEducationExperienceByEntryId(Long entryId);

    /**
     * 批量校验经历
     * @param oaEntryEducationExperienceList
     */
    void batchOaEntryEducationExperience(List<OaEntryEducationExperience> oaEntryEducationExperienceList);
}
